package com.soil.code.generation.database.factory;

import com.soil.code.generation.database.repository.ColumnInfoRepository;
import com.soil.code.generation.database.repository.TableInfoRepository;

import javax.sql.DataSource;

/**
 * 数据库信息库工厂
 * @author zeno
 */
public interface DatabaseInfoRepositoryFactory{

  /**
   * 初始化 数据库信息仓储库工厂
   * @param dataSource
   */
  void init(DataSource dataSource);

  /**
   * 获取数据库表信息仓储库
   * @return 表信息仓储库
   */
  TableInfoRepository createTableInfoRepository();


  /**
   * 获取数据库表信息仓储库
   *
   * @return 表信息仓储库
   */
  ColumnInfoRepository createColumnInfoRepository();

  /**
   * 数据信息工厂类型
   * @return  工厂类型
   */
  String type();
}
